技巧41 运行Docker时不加sudo

Docker守护进程以root用户身份在机器的后台运行,这给了它莫大的权力,同时它又是对你,即终端用户开放的。需要使用sudo是一个结果,但是这样做不太方便,而且也会造成一些第三方Docker工具无法使用。

问题

想要无须sudo便可以执行 docker 命令。

解决方案

官方解决方案是把自己加到 docker 组。Docker通过一个用户组围绕着Docker Unix域套接字来管理权限。为安全起见,发行版默认不会将用户加到该用户组里,因为这样做会开放系统完整的root访问权限。

把自己加到该用户组后,用户便能以自己的身份使用 docker 命令:

$ sudo addgroup -a username docker

重启Docker然后完全注销并再次登录,或者更简单点,重启机器。现在执行Docker命令时不用再留意键入 sudo 或设置别名了。

讨论

对于本书后面部分用到的一系列工具来说,这是一项极其重要的技巧。一般来说,任何想要和Docker通信的对象(无须在容器里启动)都需要能够访问Docker套接字,这需要使用sudo或者使用本技巧里提到的设置。技巧76里引入的Docker Compose是Docker公司的官方工具,也是这类工具的一个示例。

results matching ""

    No results matching ""